``` #include <sys/mount.h> #include <stdio.h> int main(void) { /* 绑定挂载示例:把src目录接到tgt(需CAP_SYS_ADMIN,rax=165) */ if (mount("/src", "/tgt", NULL, MS_BIND, NULL) < 0) { perror("mount"); /* 无特权时返回EPERM(1) */ return 1; } return 0; } ``` 链路:`mount()` → glibc 置 `rax=165`,`rdi=src`、`rsi=tgt`、`rdx=fstype`、`r10=flags`、`r8=data` → 陷入后内核校验调用方 `cred` 是否具备 `CAP_SYS_ADMIN`,再解析源与挂载点、建立挂载关系。无特权返回 `-EPERM`。`umount2()` 置 `rax=166` 走对应卸载检查。 ``` # 隔离靶场内观察无特权mount被EPERM拒绝 strace